// Copyright 2022 The Pigweed Authors
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.
#pragma once

// 16-bit UUID Assigned Numbers.
// Source: Bluetooth "16-bit UUID Numbers Document" revision 2022-10-07
//
// The UUIDs are grouped according to the type in different classes so users in
// other namespaces can access them with `using
// pw::bluetooth::GattDescriptorUuid`.

#include "pw_bluetooth/uuid.h"

namespace pw::bluetooth {

// GATT Descriptor
class GattDescriptorUuid {
 public:
  static constexpr Uuid kCharacteristicExtendedProperties{0x2900};
  static constexpr Uuid kCharacteristicUserDescription{0x2901};
  static constexpr Uuid kClientCharacteristicConfiguration{0x2902};
  static constexpr Uuid kServerCharacteristicConfiguration{0x2903};
  static constexpr Uuid kCharacteristicPresentationFormat{0x2904};
  static constexpr Uuid kCharacteristicAggregateFormat{0x2905};
  static constexpr Uuid kValidRange{0x2906};
  static constexpr Uuid kExternalReportReference{0x2907};
  static constexpr Uuid kReportReference{0x2908};
  static constexpr Uuid kNumberOfDigitals{0x2909};
  static constexpr Uuid kValueTriggerSetting{0x290a};
  static constexpr Uuid kEnvironmentalSensingConfiguration{0x290b};
  static constexpr Uuid kEnvironmentalSensingMeasurement{0x290c};
  static constexpr Uuid kEnvironmentalSensingTriggerSetting{0x290d};
  static constexpr Uuid kTimeTriggerSetting{0x290e};
  static constexpr Uuid kCompleteBrEdrTransportBlockData{0x290f};
};

// GATT Declarations
class GattDeclarationsUuid {
 public:
  static constexpr Uuid kPrimaryService{0x2800};
  static constexpr Uuid kSecondaryService{0x2801};
  static constexpr Uuid kInclude{0x2802};
  static constexpr Uuid kCharacteristic{0x2803};
};

// GATT Service
class GattServiceUuid {
 public:
  static constexpr Uuid kGenericAccess{0x1800};
  static constexpr Uuid kGenericAttribute{0x1801};
  static constexpr Uuid kImmediateAlert{0x1802};
  static constexpr Uuid kLinkLoss{0x1803};
  static constexpr Uuid kTxPower{0x1804};
  static constexpr Uuid kCurrentTime{0x1805};
  static constexpr Uuid kReferenceTimeUpdate{0x1806};
  static constexpr Uuid kNextDstChange{0x1807};
  static constexpr Uuid kGlucose{0x1808};
  static constexpr Uuid kHealthThermometer{0x1809};
  static constexpr Uuid kDeviceInformation{0x180a};
  static constexpr Uuid kHeartRate{0x180d};
  static constexpr Uuid kPhoneAlertStatus{0x180e};
  static constexpr Uuid kBattery{0x180f};
  static constexpr Uuid kBloodPressure{0x1810};
  static constexpr Uuid kAlertNotification{0x1811};
  static constexpr Uuid kHumanInterfaceDevice{0x1812};
  static constexpr Uuid kScanParameters{0x1813};
  static constexpr Uuid kRunningSpeedAndCadence{0x1814};
  static constexpr Uuid kAutomationIo{0x1815};
  static constexpr Uuid kCyclingSpeedAndCadence{0x1816};
  static constexpr Uuid kCyclingPower{0x1818};
  static constexpr Uuid kLocationAndNavigation{0x1819};
  static constexpr Uuid kEnvironmentalSensing{0x181a};
  static constexpr Uuid kBodyComposition{0x181b};
  static constexpr Uuid kUserData{0x181c};
  static constexpr Uuid kWeightScale{0x181d};
  static constexpr Uuid kBondManagement{0x181e};
  static constexpr Uuid kContinuousGlucoseMonitoring{0x181f};
  static constexpr Uuid kInternetProtocolSupport{0x1820};
  static constexpr Uuid kIndoorPositioning{0x1821};
  static constexpr Uuid kPulseOximeter{0x1822};
  static constexpr Uuid kHttpProxy{0x1823};
  static constexpr Uuid kTransportDiscovery{0x1824};
  static constexpr Uuid kObjectTransfer{0x1825};
  static constexpr Uuid kFitnessMachine{0x1826};
  static constexpr Uuid kMeshProvisioning{0x1827};
  static constexpr Uuid kMeshProxy{0x1828};
  static constexpr Uuid kReconnectionConfiguration{0x1829};
  static constexpr Uuid kInsulinDelivery{0x183a};
  static constexpr Uuid kBinarySensor{0x183b};
  static constexpr Uuid kEmergencyConfiguration{0x183c};
  static constexpr Uuid kAuthorizationControl{0x183d};
  static constexpr Uuid kPhysicalActivityMonitor{0x183e};
  static constexpr Uuid kAudioInputControl{0x1843};
  static constexpr Uuid kVolumeControl{0x1844};
  static constexpr Uuid kVolumeOffsetControl{0x1845};
  static constexpr Uuid kCoordinatedSetIdentification{0x1846};
  static constexpr Uuid kDeviceTime{0x1847};
  static constexpr Uuid kMediaControl{0x1848};
  static constexpr Uuid kGenericMediaControl{0x1849};
  static constexpr Uuid kConstantToneExtension{0x184a};
  static constexpr Uuid kTelephoneBearer{0x184b};
  static constexpr Uuid kGenericTelephoneBearer{0x184c};
  static constexpr Uuid kMicrophoneControl{0x184d};
  static constexpr Uuid kAudioStreamControl{0x184e};
  static constexpr Uuid kBroadcastAudioScan{0x184f};
  static constexpr Uuid kPublishedAudioCapabilities{0x1850};
  static constexpr Uuid kBasicAudioAnnouncement{0x1851};
  static constexpr Uuid kBroadcastAudioAnnouncement{0x1852};
  static constexpr Uuid kCommonAudio{0x1853};
  static constexpr Uuid kHearingAccess{0x1854};
  static constexpr Uuid kTmas{0x1855};
  static constexpr Uuid kPublicBroadcastAnnouncement{0x1856};
};

// GATT Unit
class GattUnitUuid {
 public:
  static constexpr Uuid kUnitless{0x2700};
  static constexpr Uuid kLengthMetre{0x2701};
  static constexpr Uuid kMassKilogram{0x2702};
  static constexpr Uuid kTimeSecond{0x2703};
  static constexpr Uuid kElectricCurrentAmpere{0x2704};
  static constexpr Uuid kThermodynamicTemperatureKelvin{0x2705};
  static constexpr Uuid kAmountOfSubstanceMole{0x2706};
  static constexpr Uuid kLuminousIntensityCandela{0x2707};
  static constexpr Uuid kAreaSquareMetres{0x2710};
  static constexpr Uuid kVolumeCubicMetres{0x2711};
  static constexpr Uuid kVelocityMetresPerSecond{0x2712};
  static constexpr Uuid kAccelerationMetresPerSecondSquared{0x2713};
  static constexpr Uuid kWavenumberReciprocalMetre{0x2714};
  static constexpr Uuid kDensityKilogramPerCubicMetre{0x2715};
  static constexpr Uuid kSurfaceDensityKilogramPerSquareMetre{0x2716};
  static constexpr Uuid kSpecificVolumeCubicMetrePerKilogram{0x2717};
  static constexpr Uuid kCurrentDensityAmperePerSquareMetre{0x2718};
  static constexpr Uuid kMagneticFieldStrengthAmperePerMetre{0x2719};
  static constexpr Uuid kAmountConcentrationMolePerCubicMetre{0x271a};
  static constexpr Uuid kMassConcentrationKilogramPerCubicMetre{0x271b};
  static constexpr Uuid kLuminanceCandelaPerSquareMetre{0x271c};
  static constexpr Uuid kRefractiveIndex{0x271d};
  static constexpr Uuid kRelativePermeability{0x271e};
  static constexpr Uuid kPlaneAngleRadian{0x2720};
  static constexpr Uuid kSolidAngleSteradian{0x2721};
  static constexpr Uuid kFrequencyHertz{0x2722};
  static constexpr Uuid kForceNewton{0x2723};
  static constexpr Uuid kPressurePascal{0x2724};
  static constexpr Uuid kEnergyJoule{0x2725};
  static constexpr Uuid kPowerWatt{0x2726};
  static constexpr Uuid kElectricChargeCoulomb{0x2727};
  static constexpr Uuid kElectricPotentialDifferenceVolt{0x2728};
  static constexpr Uuid kCapacitanceFarad{0x2729};
  static constexpr Uuid kElectricResistanceOhm{0x272a};
  static constexpr Uuid kElectricConductanceSiemens{0x272b};
  static constexpr Uuid kMagneticFluxWeber{0x272c};
  static constexpr Uuid kMagneticFluxDensityTesla{0x272d};
  static constexpr Uuid kInductanceHenry{0x272e};
  static constexpr Uuid kCelsiusTemperatureDegreeCelsius{0x272f};
  static constexpr Uuid kLuminousFluxLumen{0x2730};
  static constexpr Uuid kIlluminanceLux{0x2731};
  static constexpr Uuid kActivityReferredToARadionuclideBecquerel{0x2732};
  static constexpr Uuid kAbsorbedDoseGray{0x2733};
  static constexpr Uuid kDoseEquivalentSievert{0x2734};
  static constexpr Uuid kCatalyticActivityKatal{0x2735};
  static constexpr Uuid kDynamicViscosityPascalSecond{0x2740};
  static constexpr Uuid kMomentOfForceNewtonMetre{0x2741};
  static constexpr Uuid kSurfaceTensionNewtonPerMetre{0x2742};
  static constexpr Uuid kAngularVelocityRadianPerSecond{0x2743};
  static constexpr Uuid kAngularAccelerationRadianPerSecondSquared{0x2744};
  static constexpr Uuid kHeatFluxDensityWattPerSquareMetre{0x2745};
  static constexpr Uuid kHeatCapacityJoulePerKelvin{0x2746};
  static constexpr Uuid kSpecificHeatCapacityJoulePerKilogramKelvin{0x2747};
  static constexpr Uuid kSpecificEnergyJoulePerKilogram{0x2748};
  static constexpr Uuid kThermalConductivityWattPerMetreKelvin{0x2749};
  static constexpr Uuid kEnergyDensityJoulePerCubicMetre{0x274a};
  static constexpr Uuid kElectricFieldStrengthVoltPerMetre{0x274b};
  static constexpr Uuid kElectricChargeDensityCoulombPerCubicMetre{0x274c};
  static constexpr Uuid kSurfaceChargeDensityCoulombPerSquareMetre{0x274d};
  static constexpr Uuid kElectricFluxDensityCoulombPerSquareMetre{0x274e};
  static constexpr Uuid kPermittivityFaradPerMetre{0x274f};
  static constexpr Uuid kPermeabilityHenryPerMetre{0x2750};
  static constexpr Uuid kMolarEnergyJoulePerMole{0x2751};
  static constexpr Uuid kMolarEntropyJoulePerMoleKelvin{0x2752};
  static constexpr Uuid kExposureCoulombPerKilogram{0x2753};
  static constexpr Uuid kAbsorbedDoseRateGrayPerSecond{0x2754};
  static constexpr Uuid kRadiantIntensityWattPerSteradian{0x2755};
  static constexpr Uuid kRadianceWattPerSquareMetreSteradian{0x2756};
  static constexpr Uuid kCatalyticActivityConcentrationKatalPerCubicMetre{
      0x2757};
  static constexpr Uuid kTimeMinute{0x2760};
  static constexpr Uuid kTimeHour{0x2761};
  static constexpr Uuid kTimeDay{0x2762};
  static constexpr Uuid kPlaneAngleDegree{0x2763};
  static constexpr Uuid kPlaneAngleMinute{0x2764};
  static constexpr Uuid kPlaneAngleSecond{0x2765};
  static constexpr Uuid kAreaHectare{0x2766};
  static constexpr Uuid kVolumeLitre{0x2767};
  static constexpr Uuid kMassTonne{0x2768};
  static constexpr Uuid kPressureBar{0x2780};
  static constexpr Uuid kPressureMillimetreOfMercury{0x2781};
  static constexpr Uuid kLengthÅngström{0x2782};
  static constexpr Uuid kLengthNauticalMile{0x2783};
  static constexpr Uuid kAreaBarn{0x2784};
  static constexpr Uuid kVelocityKnot{0x2785};
  static constexpr Uuid kLogarithmicRadioQuantityNeper{0x2786};
  static constexpr Uuid kLogarithmicRadioQuantityBel{0x2787};
  static constexpr Uuid kLengthYard{0x27a0};
  static constexpr Uuid kLengthParsec{0x27a1};
  static constexpr Uuid kLengthInch{0x27a2};
  static constexpr Uuid kLengthFoot{0x27a3};
  static constexpr Uuid kLengthMile{0x27a4};
  static constexpr Uuid kPressurePoundForcePerSquareInch{0x27a5};
  static constexpr Uuid kVelocityKilometrePerHour{0x27a6};
  static constexpr Uuid kVelocityMilePerHour{0x27a7};
  static constexpr Uuid kAngularVelocityRevolutionPerMinute{0x27a8};
  static constexpr Uuid kEnergyGramCalorie{0x27a9};
  static constexpr Uuid kEnergyKilogramCalorie{0x27aa};
  static constexpr Uuid kEnergyKilowattHour{0x27ab};
  static constexpr Uuid kThermodynamicTemperatureDegreeFahrenheit{0x27ac};
  static constexpr Uuid kPercentage{0x27ad};
  static constexpr Uuid kPerMille{0x27ae};
  static constexpr Uuid kPeriodBeatsPerMinute{0x27af};
  static constexpr Uuid kElectricChargeAmpereHours{0x27b0};
  static constexpr Uuid kMassDensityMilligramPerDecilitre{0x27b1};
  static constexpr Uuid kMassDensityMillimolePerLitre{0x27b2};
  static constexpr Uuid kTimeYear{0x27b3};
  static constexpr Uuid kTimeMonth{0x27b4};
  static constexpr Uuid kConcentrationCountPerCubicMetre{0x27b5};
  static constexpr Uuid kIrradianceWattPerSquareMetre{0x27b6};
  static constexpr Uuid kMilliliterPerKilogramPerMinute{0x27b7};
  static constexpr Uuid kMassPound{0x27b8};
  static constexpr Uuid kMetabolicEquivalent{0x27b9};
  static constexpr Uuid kStepPerMinute{0x27ba};
  static constexpr Uuid kStrokePerMinute{0x27bc};
  static constexpr Uuid kPaceKilometrePerMinute{0x27bd};
  static constexpr Uuid kLuminousEfficacyLumenPerWatt{0x27be};
  static constexpr Uuid kLuminousEnergyLumenHour{0x27bf};
  static constexpr Uuid kLuminousExposureLuxHour{0x27c0};
  static constexpr Uuid kMassFlowGramPerSecond{0x27c1};
  static constexpr Uuid kVolumeFlowLitrePerSecond{0x27c2};
  static constexpr Uuid kSoundPressureDecibel{0x27c3};
  static constexpr Uuid kPartsPerMillion{0x27c4};
  static constexpr Uuid kPartsPerBillion{0x27c5};
  static constexpr Uuid kMassDensityRateMilligramPerDecilitrePerMinute{0x27c6};
  static constexpr Uuid kElectricalApparentEnergyKilovoltAmpereHour{0x27c7};
  static constexpr Uuid kElectricalApparentPowerVoltAmpere{0x27c8};
};

// GATT Characteristic and Object Type
class GattCharacteristicUuid {
 public:
  static constexpr Uuid kDeviceName{0x2a00};
  static constexpr Uuid kAppearance{0x2a01};
  static constexpr Uuid kPeripheralPrivacyFlag{0x2a02};
  static constexpr Uuid kReconnectionAddress{0x2a03};
  static constexpr Uuid kPeripheralPreferredConnectionParameters{0x2a04};
  static constexpr Uuid kServiceChanged{0x2a05};
  static constexpr Uuid kAlertLevel{0x2a06};
  static constexpr Uuid kTxPowerLevel{0x2a07};
  static constexpr Uuid kDateTime{0x2a08};
  static constexpr Uuid kDayOfWeek{0x2a09};
  static constexpr Uuid kDayDateTime{0x2a0a};
  static constexpr Uuid kExactTime256{0x2a0c};
  static constexpr Uuid kDstOffset{0x2a0d};
  static constexpr Uuid kTimeZone{0x2a0e};
  static constexpr Uuid kLocalTimeInformation{0x2a0f};
  static constexpr Uuid kTimeWithDst{0x2a11};
  static constexpr Uuid kTimeAccuracy{0x2a12};
  static constexpr Uuid kTimeSource{0x2a13};
  static constexpr Uuid kReferenceTimeInformation{0x2a14};
  static constexpr Uuid kTimeUpdateControlPoint{0x2a16};
  static constexpr Uuid kTimeUpdateState{0x2a17};
  static constexpr Uuid kGlucoseMeasurement{0x2a18};
  static constexpr Uuid kBatteryLevel{0x2a19};
  static constexpr Uuid kTemperatureMeasurement{0x2a1c};
  static constexpr Uuid kTemperatureType{0x2a1d};
  static constexpr Uuid kIntermediateTemperature{0x2a1e};
  static constexpr Uuid kMeasurementInterval{0x2a21};
  static constexpr Uuid kBootKeyboardInputReport{0x2a22};
  static constexpr Uuid kSystemId{0x2a23};
  static constexpr Uuid kModelNumberString{0x2a24};
  static constexpr Uuid kSerialNumberString{0x2a25};
  static constexpr Uuid kFirmwareRevisionString{0x2a26};
  static constexpr Uuid kHardwareRevisionString{0x2a27};
  static constexpr Uuid kSoftwareRevisionString{0x2a28};
  static constexpr Uuid kManufacturerNameString{0x2a29};
  static constexpr Uuid kIeee1107320601RegulatoryCertificationDataList{0x2a2a};
  static constexpr Uuid kCurrentTime{0x2a2b};
  static constexpr Uuid kMagneticDeclination{0x2a2c};
  static constexpr Uuid kScanRefresh{0x2a31};
  static constexpr Uuid kBootKeyboardOutputReport{0x2a32};
  static constexpr Uuid kBootMouseInputReport{0x2a33};
  static constexpr Uuid kGlucoseMeasurementContext{0x2a34};
  static constexpr Uuid kBloodPressureMeasurement{0x2a35};
  static constexpr Uuid kIntermediateCuffPressure{0x2a36};
  static constexpr Uuid kHeartRateMeasurement{0x2a37};
  static constexpr Uuid kBodySensorLocation{0x2a38};
  static constexpr Uuid kHeartRateControlPoint{0x2a39};
  static constexpr Uuid kAlertStatus{0x2a3f};
  static constexpr Uuid kRingerControlPoint{0x2a40};
  static constexpr Uuid kRingerSetting{0x2a41};
  static constexpr Uuid kAlertCategoryIdBitMask{0x2a42};
  static constexpr Uuid kAlertCategoryId{0x2a43};
  static constexpr Uuid kAlertNotificationControlPoint{0x2a44};
  static constexpr Uuid kUnreadAlertStatus{0x2a45};
  static constexpr Uuid kNewAlert{0x2a46};
  static constexpr Uuid kSupportedNewAlertCategory{0x2a47};
  static constexpr Uuid kSupportedUnreadAlertCategory{0x2a48};
  static constexpr Uuid kBloodPressureFeature{0x2a49};
  static constexpr Uuid kHidInformation{0x2a4a};
  static constexpr Uuid kReportMap{0x2a4b};
  static constexpr Uuid kHidControlPoint{0x2a4c};
  static constexpr Uuid kReport{0x2a4d};
  static constexpr Uuid kProtocolMode{0x2a4e};
  static constexpr Uuid kScanIntervalWindow{0x2a4f};
  static constexpr Uuid kPnpId{0x2a50};
  static constexpr Uuid kGlucoseFeature{0x2a51};
  static constexpr Uuid kRecordAccessControlPoint{0x2a52};
  static constexpr Uuid kRscMeasurement{0x2a53};
  static constexpr Uuid kRscFeature{0x2a54};
  static constexpr Uuid kScControlPoint{0x2a55};
  static constexpr Uuid kAggregate{0x2a5a};
  static constexpr Uuid kCscMeasurement{0x2a5b};
  static constexpr Uuid kCscFeature{0x2a5c};
  static constexpr Uuid kSensorLocation{0x2a5d};
  static constexpr Uuid kPlxSpotCheckMeasurement{0x2a5e};
  static constexpr Uuid kPlxContinuousMeasurement{0x2a5f};
  static constexpr Uuid kPlxFeatures{0x2a60};
  static constexpr Uuid kCyclingPowerMeasurement{0x2a63};
  static constexpr Uuid kCyclingPowerVector{0x2a64};
  static constexpr Uuid kCyclingPowerFeature{0x2a65};
  static constexpr Uuid kCyclingPowerControlPoint{0x2a66};
  static constexpr Uuid kLocationAndSpeed{0x2a67};
  static constexpr Uuid kNavigation{0x2a68};
  static constexpr Uuid kPositionQuality{0x2a69};
  static constexpr Uuid kLnFeature{0x2a6a};
  static constexpr Uuid kLnControlPoint{0x2a6b};
  static constexpr Uuid kElevation{0x2a6c};
  static constexpr Uuid kPressure{0x2a6d};
  static constexpr Uuid kTemperature{0x2a6e};
  static constexpr Uuid kHumidity{0x2a6f};
  static constexpr Uuid kTrueWindSpeed{0x2a70};
  static constexpr Uuid kTrueWindDirection{0x2a71};
  static constexpr Uuid kApparentWindSpeed{0x2a72};
  static constexpr Uuid kApparentWindDirection{0x2a73};
  static constexpr Uuid kGustFactor{0x2a74};
  static constexpr Uuid kPollenConcentration{0x2a75};
  static constexpr Uuid kUvIndex{0x2a76};
  static constexpr Uuid kIrradiance{0x2a77};
  static constexpr Uuid kRainfall{0x2a78};
  static constexpr Uuid kWindChill{0x2a79};
  static constexpr Uuid kHeatIndex{0x2a7a};
  static constexpr Uuid kDewPoint{0x2a7b};
  static constexpr Uuid kDescriptorValueChanged{0x2a7d};
  static constexpr Uuid kAerobicHeartRateLowerLimit{0x2a7e};
  static constexpr Uuid kAerobicThreshold{0x2a7f};
  static constexpr Uuid kAge{0x2a80};
  static constexpr Uuid kAnaerobicHeartRateLowerLimit{0x2a81};
  static constexpr Uuid kAnaerobicHeartRateUpperLimit{0x2a82};
  static constexpr Uuid kAnaerobicThreshold{0x2a83};
  static constexpr Uuid kAerobicHeartRateUpperLimit{0x2a84};
  static constexpr Uuid kDateOfBirth{0x2a85};
  static constexpr Uuid kDateOfThresholdAssessment{0x2a86};
  static constexpr Uuid kEmailAddress{0x2a87};
  static constexpr Uuid kFatBurnHeartRateLowerLimit{0x2a88};
  static constexpr Uuid kFatBurnHeartRateUpperLimit{0x2a89};
  static constexpr Uuid kFirstName{0x2a8a};
  static constexpr Uuid kFiveZoneHeartRateLimits{0x2a8b};
  static constexpr Uuid kGender{0x2a8c};
  static constexpr Uuid kHeartRateMax{0x2a8d};
  static constexpr Uuid kHeight{0x2a8e};
  static constexpr Uuid kHipCircumference{0x2a8f};
  static constexpr Uuid kLastName{0x2a90};
  static constexpr Uuid kMaximumRecommendedHeartRate{0x2a91};
  static constexpr Uuid kRestingHeartRate{0x2a92};
  static constexpr Uuid kSportTypeForAerobicAndAnaerobicThresholds{0x2a93};
  static constexpr Uuid kThreeZoneHeartRateLimits{0x2a94};
  static constexpr Uuid kTwoZoneHeartRateLimits{0x2a95};
  static constexpr Uuid kVo2Max{0x2a96};
  static constexpr Uuid kWaistCircumference{0x2a97};
  static constexpr Uuid kWeight{0x2a98};
  static constexpr Uuid kDatabaseChangeIncrement{0x2a99};
  static constexpr Uuid kUserIndex{0x2a9a};
  static constexpr Uuid kBodyCompositionFeature{0x2a9b};
  static constexpr Uuid kBodyCompositionMeasurement{0x2a9c};
  static constexpr Uuid kWeightMeasurement{0x2a9d};
  static constexpr Uuid kWeightScaleFeature{0x2a9e};
  static constexpr Uuid kUserControlPoint{0x2a9f};
  static constexpr Uuid kMagneticFluxDensity2d{0x2aa0};
  static constexpr Uuid kMagneticFluxDensity3d{0x2aa1};
  static constexpr Uuid kLanguage{0x2aa2};
  static constexpr Uuid kBarometricPressureTrend{0x2aa3};
  static constexpr Uuid kBondManagementControlPoint{0x2aa4};
  static constexpr Uuid kBondManagementFeature{0x2aa5};
  static constexpr Uuid kCentralAddressResolution{0x2aa6};
  static constexpr Uuid kCgmMeasurement{0x2aa7};
  static constexpr Uuid kCgmFeature{0x2aa8};
  static constexpr Uuid kCgmStatus{0x2aa9};
  static constexpr Uuid kCgmSessionStartTime{0x2aaa};
  static constexpr Uuid kCgmSessionRunTime{0x2aab};
  static constexpr Uuid kCgmSpecificOpsControlPoint{0x2aac};
  static constexpr Uuid kIndoorPositioningConfiguration{0x2aad};
  static constexpr Uuid kLatitude{0x2aae};
  static constexpr Uuid kLongitude{0x2aaf};
  static constexpr Uuid kLocalNorthCoordinate{0x2ab0};
  static constexpr Uuid kLocalEastCoordinate{0x2ab1};
  static constexpr Uuid kFloorNumber{0x2ab2};
  static constexpr Uuid kAltitude{0x2ab3};
  static constexpr Uuid kUncertainty{0x2ab4};
  static constexpr Uuid kLocationName{0x2ab5};
  static constexpr Uuid kUri{0x2ab6};
  static constexpr Uuid kHttpHeaders{0x2ab7};
  static constexpr Uuid kHttpStatusCode{0x2ab8};
  static constexpr Uuid kHttpEntityBody{0x2ab9};
  static constexpr Uuid kHttpControlPoint{0x2aba};
  static constexpr Uuid kHttpsSecurity{0x2abb};
  static constexpr Uuid kTdsControlPoint{0x2abc};
  static constexpr Uuid kOtsFeature{0x2abd};
  static constexpr Uuid kObjectName{0x2abe};
  static constexpr Uuid kObjectType{0x2abf};
  static constexpr Uuid kObjectSize{0x2ac0};
  static constexpr Uuid kObjectFirstCreated{0x2ac1};
  static constexpr Uuid kObjectLastModified{0x2ac2};
  static constexpr Uuid kObjectId{0x2ac3};
  static constexpr Uuid kObjectProperties{0x2ac4};
  static constexpr Uuid kObjectActionControlPoint{0x2ac5};
  static constexpr Uuid kObjectListControlPoint{0x2ac6};
  static constexpr Uuid kObjectListFilter{0x2ac7};
  static constexpr Uuid kObjectChanged{0x2ac8};
  static constexpr Uuid kResolvablePrivateAddressOnly{0x2ac9};
  static constexpr Uuid kUnspecified{0x2aca};
  static constexpr Uuid kDirectoryListing{0x2acb};
  static constexpr Uuid kFitnessMachineFeature{0x2acc};
  static constexpr Uuid kTreadmillData{0x2acd};
  static constexpr Uuid kCrossTrainerData{0x2ace};
  static constexpr Uuid kStepClimberData{0x2acf};
  static constexpr Uuid kStairClimberData{0x2ad0};
  static constexpr Uuid kRowerData{0x2ad1};
  static constexpr Uuid kIndoorBikeData{0x2ad2};
  static constexpr Uuid kTrainingStatus{0x2ad3};
  static constexpr Uuid kSupportedSpeedRange{0x2ad4};
  static constexpr Uuid kSupportedInclinationRange{0x2ad5};
  static constexpr Uuid kSupportedResistanceLevelRange{0x2ad6};
  static constexpr Uuid kSupportedHeartRateRange{0x2ad7};
  static constexpr Uuid kSupportedPowerRange{0x2ad8};
  static constexpr Uuid kFitnessMachineControlPoint{0x2ad9};
  static constexpr Uuid kFitnessMachineStatus{0x2ada};
  static constexpr Uuid kMeshProvisioningDataIn{0x2adb};
  static constexpr Uuid kMeshProvisioningDataOut{0x2adc};
  static constexpr Uuid kMeshProxyDataIn{0x2add};
  static constexpr Uuid kMeshProxyDataOut{0x2ade};
  static constexpr Uuid kAverageCurrent{0x2ae0};
  static constexpr Uuid kAverageVoltage{0x2ae1};
  static constexpr Uuid kBoolean{0x2ae2};
  static constexpr Uuid kChromaticDistanceFromPlanckian{0x2ae3};
  static constexpr Uuid kChromaticityCoordinates{0x2ae4};
  static constexpr Uuid kChromaticityInCctAndDuvValues{0x2ae5};
  static constexpr Uuid kChromaticityTolerance{0x2ae6};
  static constexpr Uuid kCie1331995ColorRenderingIndex{0x2ae7};
  static constexpr Uuid kCoefficient{0x2ae8};
  static constexpr Uuid kCorrelatedColorTemperature{0x2ae9};
  static constexpr Uuid kCount16{0x2aea};
  static constexpr Uuid kCount24{0x2aeb};
  static constexpr Uuid kCountryCode{0x2aec};
  static constexpr Uuid kDateUtc{0x2aed};
  static constexpr Uuid kElectricCurrent{0x2aee};
  static constexpr Uuid kElectricCurrentRange{0x2aef};
  static constexpr Uuid kElectricCurrentSpecification{0x2af0};
  static constexpr Uuid kElectricCurrentStatistics{0x2af1};
  static constexpr Uuid kEnergy{0x2af2};
  static constexpr Uuid kEnergyInAPeriodOfDay{0x2af3};
  static constexpr Uuid kEventStatistics{0x2af4};
  static constexpr Uuid kFixedString16{0x2af5};
  static constexpr Uuid kFixedString24{0x2af6};
  static constexpr Uuid kFixedString36{0x2af7};
  static constexpr Uuid kFixedString8{0x2af8};
  static constexpr Uuid kGenericLevel{0x2af9};
  static constexpr Uuid kGlobalTradeItemNumber{0x2afa};
  static constexpr Uuid kIlluminance{0x2afb};
  static constexpr Uuid kLuminousEfficacy{0x2afc};
  static constexpr Uuid kLuminousEnergy{0x2afd};
  static constexpr Uuid kLuminousExposure{0x2afe};
  static constexpr Uuid kLuminousFlux{0x2aff};
  static constexpr Uuid kLuminousFluxRange{0x2b00};
  static constexpr Uuid kLuminousIntensity{0x2b01};
  static constexpr Uuid kMassFlow{0x2b02};
  static constexpr Uuid kPerceivedLightness{0x2b03};
  static constexpr Uuid kPercentage8{0x2b04};
  static constexpr Uuid kPower{0x2b05};
  static constexpr Uuid kPowerSpecification{0x2b06};
  static constexpr Uuid kRelativeRuntimeInACurrentRange{0x2b07};
  static constexpr Uuid kRelativeRuntimeInAGenericLevelRange{0x2b08};
  static constexpr Uuid kRelativeValueInAVoltageRange{0x2b09};
  static constexpr Uuid kRelativeValueInAnIlluminanceRange{0x2b0a};
  static constexpr Uuid kRelativeValueInAPeriodOfDay{0x2b0b};
  static constexpr Uuid kRelativeValueInATemperatureRange{0x2b0c};
  static constexpr Uuid kTemperature8{0x2b0d};
  static constexpr Uuid kTemperature8InAPeriodOfDay{0x2b0e};
  static constexpr Uuid kTemperature8Statistics{0x2b0f};
  static constexpr Uuid kTemperatureRange{0x2b10};
  static constexpr Uuid kTemperatureStatistics{0x2b11};
  static constexpr Uuid kTimeDecihour8{0x2b12};
  static constexpr Uuid kTimeExponential8{0x2b13};
  static constexpr Uuid kTimeHour24{0x2b14};
  static constexpr Uuid kTimeMillisecond24{0x2b15};
  static constexpr Uuid kTimeSecond16{0x2b16};
  static constexpr Uuid kTimeSecond8{0x2b17};
  static constexpr Uuid kVoltage{0x2b18};
  static constexpr Uuid kVoltageSpecification{0x2b19};
  static constexpr Uuid kVoltageStatistics{0x2b1a};
  static constexpr Uuid kVolumeFlow{0x2b1b};
  static constexpr Uuid kChromaticityCoordinate{0x2b1c};
  static constexpr Uuid kRcFeature{0x2b1d};
  static constexpr Uuid kRcSettings{0x2b1e};
  static constexpr Uuid kReconnectionConfigurationControlPoint{0x2b1f};
  static constexpr Uuid kIddStatusChanged{0x2b20};
  static constexpr Uuid kIddStatus{0x2b21};
  static constexpr Uuid kIddAnnunciationStatus{0x2b22};
  static constexpr Uuid kIddFeatures{0x2b23};
  static constexpr Uuid kIddStatusReaderControlPoint{0x2b24};
  static constexpr Uuid kIddCommandControlPoint{0x2b25};
  static constexpr Uuid kIddCommandData{0x2b26};
  static constexpr Uuid kIddRecordAccessControlPoint{0x2b27};
  static constexpr Uuid kIddHistoryData{0x2b28};
  static constexpr Uuid kClientSupportedFeatures{0x2b29};
  static constexpr Uuid kDatabaseHash{0x2b2a};
  static constexpr Uuid kBssControlPoint{0x2b2b};
  static constexpr Uuid kBssResponse{0x2b2c};
  static constexpr Uuid kEmergencyId{0x2b2d};
  static constexpr Uuid kEmergencyText{0x2b2e};
  static constexpr Uuid kAcsStatus{0x2b2f};
  static constexpr Uuid kAcsDataIn{0x2b30};
  static constexpr Uuid kAcsDataOutNotify{0x2b31};
  static constexpr Uuid kAcsDataOutIndicate{0x2b32};
  static constexpr Uuid kAcsControlPoint{0x2b33};
  static constexpr Uuid kEnhancedBloodPressureMeasurement{0x2b34};
  static constexpr Uuid kEnhancedIntermediateCuffPressure{0x2b35};
  static constexpr Uuid kBloodPressureRecord{0x2b36};
  static constexpr Uuid kRegisteredUser{0x2b37};
  static constexpr Uuid kBrEdrHandoverData{0x2b38};
  static constexpr Uuid kBluetoothSigData{0x2b39};
  static constexpr Uuid kServerSupportedFeatures{0x2b3a};
  static constexpr Uuid kPhysicalActivityMonitorFeatures{0x2b3b};
  static constexpr Uuid kGeneralActivityInstantaneousData{0x2b3c};
  static constexpr Uuid kGeneralActivitySummaryData{0x2b3d};
  static constexpr Uuid kCardiorespiratoryActivityInstantaneousData{0x2b3e};
  static constexpr Uuid kCardiorespiratoryActivitySummaryData{0x2b3f};
  static constexpr Uuid kStepCounterActivitySummaryData{0x2b40};
  static constexpr Uuid kSleepActivityInstantaneousData{0x2b41};
  static constexpr Uuid kSleepActivitySummaryData{0x2b42};
  static constexpr Uuid kPhysicalActivityMonitorControlPoint{0x2b43};
  static constexpr Uuid kActivityCurrentSession{0x2b44};
  static constexpr Uuid kPhysicalActivitySessionDescriptor{0x2b45};
  static constexpr Uuid kPreferredUnits{0x2b46};
  static constexpr Uuid kHighResolutionHeight{0x2b47};
  static constexpr Uuid kMiddleName{0x2b48};
  static constexpr Uuid kStrideLength{0x2b49};
  static constexpr Uuid kHandedness{0x2b4a};
  static constexpr Uuid kDeviceWearingPosition{0x2b4b};
  static constexpr Uuid kFourZoneHeartRateLimits{0x2b4c};
  static constexpr Uuid kHighIntensityExerciseThreshold{0x2b4d};
  static constexpr Uuid kActivityGoal{0x2b4e};
  static constexpr Uuid kSedentaryIntervalNotification{0x2b4f};
  static constexpr Uuid kCaloricIntake{0x2b50};
  static constexpr Uuid kTmapRole{0x2b51};
  static constexpr Uuid kAudioInputState{0x2b77};
  static constexpr Uuid kGainSettingsAttribute{0x2b78};
  static constexpr Uuid kAudioInputType{0x2b79};
  static constexpr Uuid kAudioInputStatus{0x2b7a};
  static constexpr Uuid kAudioInputControlPoint{0x2b7b};
  static constexpr Uuid kAudioInputDescription{0x2b7c};
  static constexpr Uuid kVolumeState{0x2b7d};
  static constexpr Uuid kVolumeControlPoint{0x2b7e};
  static constexpr Uuid kVolumeFlags{0x2b7f};
  static constexpr Uuid kVolumeOffsetState{0x2b80};
  static constexpr Uuid kAudioLocation{0x2b81};
  static constexpr Uuid kVolumeOffsetControlPoint{0x2b82};
  static constexpr Uuid kAudioOutputDescription{0x2b83};
  static constexpr Uuid kSetIdentityResolvingKey{0x2b84};
  static constexpr Uuid kCoordinatedSetSize{0x2b85};
  static constexpr Uuid kSetMemberLock{0x2b86};
  static constexpr Uuid kSetMemberRank{0x2b87};
  static constexpr Uuid kApparentEnergy32{0x2b89};
  static constexpr Uuid kApparentPower{0x2b8a};
  static constexpr Uuid kCo2Concentration{0x2b8c};
  static constexpr Uuid kCosineOfTheAngle{0x2b8d};
  static constexpr Uuid kDeviceTimeFeature{0x2b8e};
  static constexpr Uuid kDeviceTimeParameters{0x2b8f};
  static constexpr Uuid kDeviceTime{0x2b90};
  static constexpr Uuid kDeviceTimeControlPoint{0x2b91};
  static constexpr Uuid kTimeChangeLogData{0x2b92};
  static constexpr Uuid kMediaPlayerName{0x2b93};
  static constexpr Uuid kMediaPlayerIconObjectId{0x2b94};
  static constexpr Uuid kMediaPlayerIconUrl{0x2b95};
  static constexpr Uuid kTrackChanged{0x2b96};
  static constexpr Uuid kTrackTitle{0x2b97};
  static constexpr Uuid kTrackDuration{0x2b98};
  static constexpr Uuid kTrackPosition{0x2b99};
  static constexpr Uuid kPlaybackSpeed{0x2b9a};
  static constexpr Uuid kSeekingSpeed{0x2b9b};
  static constexpr Uuid kCurrentTrackSegmentsObjectId{0x2b9c};
  static constexpr Uuid kCurrentTrackObjectId{0x2b9d};
  static constexpr Uuid kNextTrackObjectId{0x2b9e};
  static constexpr Uuid kParentGroupObjectId{0x2b9f};
  static constexpr Uuid kCurrentGroupObjectId{0x2ba0};
  static constexpr Uuid kPlayingOrder{0x2ba1};
  static constexpr Uuid kPlayingOrdersSupported{0x2ba2};
  static constexpr Uuid kMediaState{0x2ba3};
  static constexpr Uuid kMediaControlPoint{0x2ba4};
  static constexpr Uuid kMediaControlPointOpcodesSupported{0x2ba5};
  static constexpr Uuid kSearchResultsObjectId{0x2ba6};
  static constexpr Uuid kSearchControlPoint{0x2ba7};
  static constexpr Uuid kEnergy32{0x2ba8};
  static constexpr Uuid kMediaPlayerIconObjectType{0x2ba9};
  static constexpr Uuid kTrackSegmentsObjectType{0x2baa};
  static constexpr Uuid kTrackObjectType{0x2bab};
  static constexpr Uuid kGroupObjectType{0x2bac};
  static constexpr Uuid kConstantToneExtensionEnable{0x2bad};
  static constexpr Uuid kAdvertisingConstantToneExtensionMinimumLength{0x2bae};
  static constexpr Uuid kAdvertisingConstantToneExtensionMinimumTransmitCount{
      0x2baf};
  static constexpr Uuid kAdvertisingConstantToneExtensionTransmitDuration{
      0x2bb0};
  static constexpr Uuid kAdvertisingConstantToneExtensionInterval{0x2bb1};
  static constexpr Uuid kAdvertisingConstantToneExtensionPhy{0x2bb2};
  static constexpr Uuid kBearerProviderName{0x2bb3};
  static constexpr Uuid kBearerUci{0x2bb4};
  static constexpr Uuid kBearerTechnology{0x2bb5};
  static constexpr Uuid kBearerUriSchemesSupportedList{0x2bb6};
  static constexpr Uuid kBearerSignalStrength{0x2bb7};
  static constexpr Uuid kBearerSignalStrengthReportingInterval{0x2bb8};
  static constexpr Uuid kBearerListCurrentCalls{0x2bb9};
  static constexpr Uuid kContentControlId{0x2bba};
  static constexpr Uuid kStatusFlags{0x2bbb};
  static constexpr Uuid kIncomingCallTargetBearerUri{0x2bbc};
  static constexpr Uuid kCallState{0x2bbd};
  static constexpr Uuid kCallControlPoint{0x2bbe};
  static constexpr Uuid kCallControlPointOptionalOpcodes{0x2bbf};
  static constexpr Uuid kTerminationReason{0x2bc0};
  static constexpr Uuid kIncomingCall{0x2bc1};
  static constexpr Uuid kCallFriendlyName{0x2bc2};
  static constexpr Uuid kMute{0x2bc3};
  static constexpr Uuid kSinkAse{0x2bc4};
  static constexpr Uuid kSourceAse{0x2bc5};
  static constexpr Uuid kAseControlPoint{0x2bc6};
  static constexpr Uuid kBroadcastAudioScanControlPoint{0x2bc7};
  static constexpr Uuid kBroadcastReceiveState{0x2bc8};
  static constexpr Uuid kSinkPac{0x2bc9};
  static constexpr Uuid kSinkAudioLocations{0x2bca};
  static constexpr Uuid kSourcePac{0x2bcb};
  static constexpr Uuid kSourceAudioLocations{0x2bcc};
  static constexpr Uuid kAvailableAudioContexts{0x2bcd};
  static constexpr Uuid kSupportedAudioContexts{0x2bce};
  static constexpr Uuid kAmmoniaConcentration{0x2bcf};
  static constexpr Uuid kCarbonMonoxideConcentration{0x2bd0};
  static constexpr Uuid kMethaneConcentration{0x2bd1};
  static constexpr Uuid kNitrogenDioxideConcentration{0x2bd2};
  static constexpr Uuid kNonMethaneVolatileOrganicCompoundsConcentration{
      0x2bd3};
  static constexpr Uuid kOzoneConcentration{0x2bd4};
  static constexpr Uuid kParticulateMatterPm1Concentration{0x2bd5};
  static constexpr Uuid kParticulateMatterPm25Concentration{0x2bd6};
  static constexpr Uuid kParticulateMatterPm10Concentration{0x2bd7};
  static constexpr Uuid kSulfurDioxideConcentration{0x2bd8};
  static constexpr Uuid kSulfurHexafluorideConcentration{0x2bd9};
  static constexpr Uuid kHearingAidFeatures{0x2bda};
  static constexpr Uuid kHearingAidPresetControlPoint{0x2bdb};
  static constexpr Uuid kActivePresetIndex{0x2bdc};
  static constexpr Uuid kFixedString64{0x2bde};
  static constexpr Uuid kHighTemperature{0x2bdf};
  static constexpr Uuid kHighVoltage{0x2be0};
  static constexpr Uuid kLightDistribution{0x2be1};
  static constexpr Uuid kLightOutput{0x2be2};
  static constexpr Uuid kLightSourceType{0x2be3};
  static constexpr Uuid kNoise{0x2be4};
  static constexpr Uuid kRelativeRuntimeInACorrelatedColorTemperatureRange{
      0x2be5};
  static constexpr Uuid kTimeSecond32{0x2be6};
  static constexpr Uuid kVocConcentration{0x2be7};
  static constexpr Uuid kVoltageFrequency{0x2be8};
};

}  // namespace pw::bluetooth
